System monitoring is important to ensure a healthy computing environment. Even more important is the application level monitoring to ensure easy and early identification of potential issues so that that application uptime is maintained at a high number. One way to monitor a running application is to collection performance data statistics from programming modules.
Information extracted out of collected monitoring data is used in a wide variety of ways over the lifetime of any application deployment, such as identifying connectivity issues, module failures, troubleshooting a product issue, analyzing application performance, extracting performance metrics such as response times and run time memory usage, building a knowledge base related to usage patterns and/or trends, and analyzing large amounts of data, such as recommendation engines. Often the information that is captured in application monitoring is turned into knowledge which can be used to improve the predictability and/or usability of an application program.